软件测试 |
您所在的位置:网站首页 › stock prices什么意思 › 软件测试 |
数据驱动 在实际的测试工作中,通常需要对大量的测试数据进行验证,以保证软件的正确性。这种数据量大的测 试,在功能测试中非常耗费人力物力,但是在自动化测试中,却非常容易实现。只要编写好测试的操作 步骤,然后将多组不同的测试数据传入到相同的测试用例中,就能轻松实现对不同测试数据的验证。 前面学习了参数化用例,当数据量非常大的时候,我们不能把所有的用例都放在测试模块中。可以将数 据存放到一个外部文件中,使用的时候将外部文件的数据读取出来,也方便测试数据的管理。数据与测 试用例分别管理,可以利用外部数据源 YAML、Json、Excel、CSV 等工具管理测试数据。这里推荐使 用 YAML 工具。 YAML 介绍 YAML 是在开发中的一种标记语言,适合用来表达或编辑数据结构、各种配置文件等。YAML 不局限于 语言,可以用于不同语言程序间的数据传递(类似于 Json)。YAML 具有丰富的语法结构和可扩展性, YAML 的配置文件后缀为 .yml 或 .yaml(例如:data.yaml)。 YAML 的基本语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用 tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 YAML 支持数据类型 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary) 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list) 纯量:单个的、不可再分的值 YAML 表示列表 以 - 开头的行表示构成一个数组: - hogwarts1 - hogwarts2 - hogwarts3对应的 python 的数据结构是:['hogwarts1','hogwarts2','hogwarts3'] 也可以列表嵌套列表,例如: - - hogwarts1 - hogwarts2 - hogwarts3对应的 python 的数据结构是: [['hogwarts1','hogwarts2','hogwarts3']] YAML 表示字典 key: value,冒号后面要加空格。 id: 1 name: company1 price: 200W上面表达 python 里的字典: {'id': 1, 'name': 'company1', 'price': '200W'} 相对复杂的例子: hogwarts: - id: 1 name: 格兰芬多 price: 200 - id: 2 name: 拉文克劳 price: 200对应的 python 的数据结构是: {'hogwarts': [{'id': 1, 'name': '格兰芬多', 'price': 200}, {'id': 2, 'name': '拉文克劳', 'price': 200}]} YAML 表示纯量 纯量是最基本的,不可再分的值,包括: 字符串 布尔值 整数 浮点数 Null 时间 日期pytest 结合 YAML PyYAML 模块在 python 中用于处理 YAML 格式数据,主要使用 yaml.safe_dump() 和 yaml.safe_load() 函数将 Python 对象和 YAML 格式数据相互转换。 安装 pip install PyYAML案例 创建用例文件以及数据文件来完成数据驱动的测试案例,创建一个文件夹 testdata,在这个文件夹下创 建 data.yml 和 test_yaml.py 文件。 创建 data.yml 文件: - - 1 - 2 - - 20 - 30创建“test_yaml.py”,代码如下: import pytest import yaml @pytest.mark.parametrize("a,b", yaml.safe_load(open("data.yml",\ encoding='utf-8'))) def test_foo(a,b): print(f"a + b = {a + b}")代码分析: yaml 文件里定义了列表数据,通过 open( ) 方法获取 data.yml 文件对象,使用 yaml.safe_load() 加载这个文件对象,将 yaml 格式文件转换为 Python 对象,分别传递到用例中生成多条用例执行。 运行结果: ... test_params.py::test_foo[1-2] test_params.py::test_foo[20-30] ...运行结果中 [1-2] 和 [20-30] 表示传入的两组参数,分别传入 test_foo( ) 用例方法中执行,并且 分别生成两条测试结果。pytest 结合 yaml 实现数据驱动,yaml 文件作为用例数据源,驱动测试用例的 执行,使测试用例数据维护更加方便快捷。 更多软件测试行业资讯可关注 @南音主页了解详情哦~ 推荐阅读: 南音:测试开发简历写作与面试指导? 南音:软件测试的未来前景如何? 南音:为什么越来越多的人选择软件测试? 南音:软件测试 | 面试的三大误区,你有没有中招 南音:求职不顺学社来帮你| 不限专业,应往届均可报名!春招还没拿到offer的同学注意啦! 南音:软件测试 | 什么是敏捷开发Scrum 南音:软件测试 | 极限编程XP(EXtreme Programming) 南音:软件测试 | 带你了解DevOps开发模型 南音:软件测试 | JVM Sandbox使用入门 南音:软件测试 | Frida的安装与使用 南音:软件测试 | Vue.js的安装与介绍 南音:软件测试 | vue restful请求 南音:软件测试 | Java数据持久化技术 南音:软件测试 | Spring Boot的RESTful设计与实现 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |